<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <button class="get">get</button>
    <button class="post">post</button>
</body>
<script>
    var getBtn = document.getElementsByClassName("get")[0];
    var postBtn = document.getElementsByClassName("post")[0];

    getBtn.onclick = function () {
        var wd = ""; //全局变量  记录搜索的关键词   "" => 默认查询所有数据
        var col = "id"; // 全局变量  按哪个数据排序  默认按id排序
        var type = "asc"; //  全局变量  排序方式   默认升序
        var page = 1;   // 全局变量  记录页码(默认显示第一页)
        var size = 5;   // 全局变量  记录每页显示几条数据

        debugger;

        // 回调函数 -> 把函数作为参数传到另一个函数中 让它在另一个函数中执行
        // get("http://43.138.81.225/demo/php/searchGoodsOrderLimit.php", `wd=${wd}&col=${col}&type=${type}&page=${page}&size=${size}`, true, "json", function (res) {
        //     console.log("请求成功", res);
        // })

        get("http://43.138.81.225/demo/php/searchGoodsOrderLimit.php", `wd=${wd}&col=${col}&type=${type}&page=${page}&size=${size}`, "json", function (res) {
            console.log("请求成功", res);
        })
    }


    // 缺点:
    // 1. 多参数传参讲究一一对应  -> 五个参数万一有一个参数没对上 -> 有问题!!!
    //                               即便参数有默认值 -> 也不能省略(省略了就对不上了)


    // url  请求的地址
    // data 请求携带的数据(默认"")
    // async 是否异步(默认异步)
    // dataType 接口返回数据类型 (默认text)
    // success  请求成功时执行的回调函数 -> 回调函数中有一个形参(接收请求成功时的数据)

    function get(url, data = "", async = true, dataType = "text", success) {

        var xhr = new XMLHttpRequest();

        // ajax get传参 => 将参数数据队列拼接到请求地址之后,用?分隔

        xhr.open("get", data ? url + "?" + data : url, async);

        xhr.send();

        xhr.onreadystatechange = function () {
            debugger;
            // 2 3 4
            if (xhr.readyState == 4 && xhr.status == 200) {
                var result = xhr.responseText;
                // console.log("请求成功", result);

                if (dataType == "json") {
                    result = JSON.parse(result);
                }
                // console.log(result);

                // 请求不同的接口 => 接口响应结果也是不一样的 -> 不能把拿到数据之后执行的内容定死  => 写活?

                if (success) {
                    success(result);
                }


            }
        }
    }

</script>




</html>